package logic;

import java.io.File;
import javax.swing.JScrollBar;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import qw.easyFrame.throwables.DefinedRuntimeException;
import static view.Door.dirs;
import static view.Door.running;

/**
 * 批量重命名文件.
 * @author Rex
 *
 */
public class Rename {

	static void startup(JTextField input, JTextArea area, JScrollBar bar) {
		String msg = "批量重命名完成";
		try {
			//获取关键字
			String key = input.getText();
			if ("请输入要插入的关键字".equals(key) || key == null) {
				key = "";
			}
			
			String newName = dirs[0].toString().concat(File.separator).concat(key);
			
			// 第一次重命名，为所有文件指定一个临时名称
			int times = 1;
			String temp = newName.concat("t");
			for (File f : dirs[0].listFiles()) {
				if (f.isFile()) {
					String fileName = f.getName();
					if (fileName.contains(".")) {
						f.renameTo(new File(
								temp + times + fileName.substring(fileName.lastIndexOf("."), fileName.length())));// 重命名
					} else {// 若文件不含拓展名
						f.renameTo(new File(temp + times));// 重命名
					}
					times++;
				}
			}
			
			// 第二次重命名，正式重命名文件
			times = 1;
			for (File f : dirs[0].listFiles()) {
				if (f.isFile()) {
					String fileName = f.getName();
					if (fileName.contains(".")) {
						f.renameTo(new File(
								newName + times + fileName.substring(fileName.lastIndexOf("."), fileName.length())));// 重命名
					} else {// 若文件不含拓展名
						f.renameTo(new File(newName + times));// 重命名
					}
					times++;
				}
			}
			
		} catch (Exception e) {
			msg = "出现未知异常";
			new DefinedRuntimeException(msg, e);
		} finally {
			area.append(msg);
			running = false;
			// 拖动滚动条至最后一行
			bar.setValue(bar.getMaximum());
		}
	}
	
}